﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using QLLopHoc.DoiTuongDuLieu;
using System.Data;

namespace QLLopHoc.KetNoiDatabase
{
    class KNSinhVien
    {
        //phuong thuc lay ra sinh vien dua vao ma so sinh vien
        public static DTSinhVien LaySVTuMS(string mssv)
        {
            DTSinhVien kq =null;
            string sql = " SELECT * FROM SinhVien WHERE MSSV='" + mssv + "'";
            DataTable dt = DataAccess.ExecQuery(sql);
            if (dt.Rows.Count > 0)
            {
                DataRow dr = dt.Rows[0];
                kq = new DTSinhVien();
                kq.MSSV = (string)dr["MSSV"];
                kq.HoTen = (string)dr["HoTen"];
                kq.Email = (string)dr["Email"];
                kq.Tel = (string)dr["Tel"];
            }
            return kq;
        }
        //phuong thuc them vao 1 sinh vien
        public static bool ThemSV(DTSinhVien sv)
        {
            string sql = "INSERT INTO SinhVien(MSSV,HoTen,Email,Tel) VALUES" + sv.MSSV + "','" + sv.HoTen + "','" + sv.Email + "','" + sv.Tel + "','";
            if (DataAccess.ExecuteNonQuery(sql) > 0)
            {
                return true;  
            }
            return false;
        }
        //phuong thuc xoa 1 sinh vien
        public static bool XoaSV(string mssv)
        {
            string sql = "DELETE FROM SinhVien WHERE MSSV='" + mssv + "'";
            if (DataAccess.ExecuteNonQuery(sql) > 0)
            {
                return true;
            }
            return false;
        }
        //phuong thuc cap nhat 1 sinh vien
        public static bool CapNhatSinhVien(DTSinhVien sv)
        {
            string sql = "UPDATE SinhVien SET HoTen='" + sv.HoTen + "',Email='" + sv.Email + "',Tel'" + sv.Tel + "','" + "WHERE MSSV='" + sv.MSSV + "'";
            if (DataAccess.ExecuteNonQuery(sql) > 0) 
            {
                return true;
            }
            return false;
        }
        //phương thức lấy danh sách sinh viên 
        public static List<DTSinhVien> LayDSSV()
        {
            List<DTSinhVien> ds = new List<DTSinhVien>();
            string sql = "SELECT * FROM SinhVien";
            DataTable dt = DataAccess.ExecQuery(sql);
            DTSinhVien sv = null;
            foreach (DataRow dr in dt.Rows)
            {
                sv = new DTSinhVien();
                sv.MSSV = (string)dr["MSSV"];
                sv.HoTen = (string)dr["HoTen"];
                sv.Email = (string)dr["Email"];
                sv.Tel = (string)dr["Tel"];
                ds.Add(sv);
            }
            return ds;
            }
        //phương thức lấy ra bảng sinh viên 
        public static DataTable LayBangSV() 
        { 
            DataTable dt = null; 
            string sql = "SELECT * FROM SinhVien"; 
            dt = DataAccess.ExecQuery(sql); 
            return dt; 
        } 
 
        //phương thức cập nhật bảng sinh viên 
        public static bool UpdateTableSV(DataTable dt) 
        { 
            string sql = "SELECT * FROM SinhVien"; 
            if (DataAccess.ExecUpdate(sql, dt) > 0) 
                return true; 
            return false; 
        } 
 
        //phương thức tạo 1 mã số sinh viên 
        public static string GenerateMSSV() 
        { 
            string sql = "SELECT * FROM SinhVien"; 
            DataAccess.OpenConnection(); 
            DataTable dt = DataAccess.ExecQueryManualConnect(sql); 
            int sl = dt.Rows.Count + 1; 
            //định dạng cho ms thành '0867xxx' 
            string ms = String.Format("0867{0:000}", sl); 
            string tempMS = "";
            sql = "SELECT * FROM SinhVien WHERE MSSV='" + ms + "'";
            while (DataAccess.ExecQueryManualConnect(sql).Rows.Count > 0)
            {
                sl++;
                tempMS = ms;
                ms = String.Format("0867{0:000}", sl);
                sql = sql.Replace(tempMS, ms);
            }
            DataAccess.CloseConnection();
            return ms;
            }

    }
}
